home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / etc / init.d / i2p < prev    next >
Encoding:
Text File  |  2013-01-10  |  5.2 KB  |  184 lines

  1. #!/bin/sh
  2.  
  3. ### BEGIN INIT INFO
  4. # Provides: i2p i2p-router
  5. # Required-Start: $remote_fs $syslog $named $network $time
  6. # Required-Stop: $remote_fs $syslog $named $network
  7. # Default-Start:
  8. # Default-Stop: 0 1 6 2 3 4 5
  9. # Short-Description: start and stop the i2p router
  10. # Description: i2p is a load-balanced unspoofable packet switching network
  11. ### END INIT INFO
  12.  
  13. # Check permissions
  14. if [ "`id -ur`" != '0' ]; then
  15.    echo 'ERROR: You must be root to start this service.' >&2
  16.    echo
  17.    exit 1
  18. fi
  19.  
  20. PATH=/sbin:/usr/sbin:/bin:/usr/bin
  21. DESC="I2P Router"
  22. NAME="i2p"
  23. RUN="/var/run/$NAME"
  24. DAEMON="/usr/sbin/wrapper"
  25. PIDFILE="$RUN/$NAME.pid"
  26. JVMPIDFILE="$RUN/routerjvm.pid"
  27. I2P="/usr/share/i2p"
  28. I2PTEMP="/tmp/${NAME}-daemon"
  29. WRAPPERLOG="/var/log/i2p/wrapper.log"
  30.  
  31. # Don't touch these, edit /etc/default/i2p
  32. RUN_DAEMON="False"
  33. NICE=0
  34. I2PUSER="i2psvc"
  35.  
  36. I2P_ARGS="/etc/i2p/wrapper.config \
  37.  wrapper.java.additional.1=-DloggerFilenameOverride=/var/log/i2p/log-router-@.txt \
  38.  wrapper.java.additional.10=-Dwrapper.logfile=$WRAPPERLOG \
  39.  wrapper.java.additional.11=-Di2p.dir.pid=$RUN \
  40.  wrapper.java.additional.12=-Di2p.dir.temp=$I2PTEMP \
  41.  wrapper.logfile=$WRAPPERLOG \
  42.  wrapper.pidfile=$PIDFILE \
  43.  wrapper.java.pidfile=$JVMPIDFILE \
  44.  wrapper.daemonize=TRUE"
  45.  
  46. # this isn't really needed since we depend on lsb-base (>= 3.2-14)
  47. ## Actually, we *do* need this since the versioned dependency has been dropped
  48. ## the I2P packages can be installed in GnewSense.
  49. [ -r /lib/lsb/init-functions ] && . /lib/lsb/init-functions
  50. [ -r /lib/init/vars.sh ] && . /lib/init/vars.sh
  51.  
  52.  
  53. for ENV_FILE in /etc/environment /etc/default/locale; do
  54. [ -r "$ENV_FILE" ] || continue
  55. [ -s "$ENV_FILE" ] || continue
  56.  
  57.  for var in LANG LANGUAGE LC_ALL LC_CTYPE; do
  58.      value=`egrep "^${var}=" "$ENV_FILE" | tail -n1 | cut -d= -f2`
  59.      [ -n "$value" ] && eval export $var=$value
  60.  
  61.      if [ -n "$value" ] && [ "$ENV_FILE" = /etc/environment ]; then
  62.          log_warning_msg "/etc/environment has been deprecated for locale information; use /etc/default/locale for $var=$value instead"
  63.      fi
  64.  done
  65. done
  66.  
  67. # read config file
  68. [ -r /etc/default/$NAME ] && . /etc/default/$NAME
  69.  
  70. if [ -z "$RUN_DAEMON" ]; then
  71.     echo "/etc/default/$NAME is not properly configured. Aborting." >&2
  72.     exit 1
  73. fi
  74.  
  75. case "$RUN_DAEMON" in
  76.         [NnFf]*)
  77.                 log_action_msg "$DESC daemon disabled in /etc/default/$NAME".
  78.                 exit 0
  79.                 ;;
  80. esac
  81.  
  82. # We need the wrapper. If it's not found, abort.
  83. [ -x $DAEMON ] || exit 1
  84.  
  85. # Even though this script doesn't call it, check for i2prouter.  If it's not
  86. # found, it probably means that the package isn't installed anymore.
  87. [ -x /usr/bin/i2prouter ] || exit 1
  88.  
  89. do_start()
  90. {
  91.     start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null 2>&1 \
  92.         || return 1
  93.     [ -d $RUN ] || mkdir $RUN > /dev/null 2>&1
  94.     [ -d $I2PTEMP ] || mkdir $I2PTEMP > /dev/null 2>&1
  95.     if [ -r $PIDFILE ]; then
  96.         PID="$(cat ${PIDFILE})"
  97.         if ! kill -0 $PID > /dev/null 2>&1; then
  98.                 rm "$PIDFILE" "$JVMPIDFILE"
  99.         else
  100.                 # we shouldn't get here, but...
  101.                 echo "ERROR: Another instance of $DESC is already running." >&2
  102.                 return 1
  103.         fi
  104.     fi
  105.     chown -Rf $I2PUSER:$I2PUSER  $I2PTEMP $RUN > /dev/null 2>&1
  106.     chown -f -R $I2PUSER:i2psvc /var/log/$NAME > /dev/null 2>&1
  107.     TZ=UTC start-stop-daemon --start --quiet -c $I2PUSER --pidfile $PIDFILE --exec $DAEMON -n $NICE -- \
  108.         $I2P_ARGS || return 2
  109. }
  110.  
  111. do_stop()
  112. {
  113.     start-stop-daemon --stop --quiet --retry=TERM/60/KILL/20 --pidfile $PIDFILE -u $I2PUSER
  114.     RETVAL="$?"
  115.     [ "$RETVAL" = 2 ] && return 2
  116.  
  117.     start-stop-daemon --stop --quiet --oknodo --retry=0/60/KILL/20 --exec $DAEMON
  118.  
  119.     rm -rf "$I2PTEMP" > /dev/null 2>&1
  120.     [ -d "$RUN" ] && rmdir "$RUN" 2>&1
  121. }
  122.  
  123. do_dump()
  124. {
  125.     start-stop-daemon --stop --quiet -s 3 --pidfile $PIDFILE -u $I2PUSER
  126.     RETVAL="$?"
  127.     [ "$RETVAL" = 2 ] && return 2
  128. }
  129.  
  130. case "$1" in
  131.   start)
  132.         log_daemon_msg "Starting $DESC" "$NAME"
  133.         do_start
  134.         case "$?" in
  135.                 0|1) log_end_msg 0 ;;
  136.                 2) log_end_msg 1 ;;
  137.         esac
  138.         ;;
  139.   dump)
  140.         log_daemon_msg "Dumping $DESC" "$NAME"
  141.         do_dump
  142.         case "$?" in
  143.                 0|1) log_end_msg 0 ;;
  144.                 2) log_end_msg 1 ;;
  145.         esac
  146.         ;;
  147.   stop)
  148.     log_daemon_msg "Stopping $DESC" "$NAME"
  149.         do_stop
  150.         case "$?" in
  151.                 0|1) log_end_msg 0 ;;
  152.                 2) log_end_msg 1 ;;
  153.         esac
  154.         ;;
  155.   status)
  156.        status_of_proc -p $PIDFILE "$DAEMON" "$NAME" && exit 0 || exit $?
  157.     ;;
  158.  restart|force-reload)
  159.         log_daemon_msg "Restarting $DESC" "$NAME"
  160.         do_stop
  161.         case "$?" in
  162.           0|1)
  163.                 do_start
  164.                 case "$?" in
  165.                         0) log_end_msg 0 ;;
  166.                         1) log_end_msg 1 ;; # Old process is still running
  167.                         *) log_end_msg 1 ;; # Failed to start
  168.                 esac
  169.                 ;;
  170.           *)
  171.                 # Failed to stop
  172.                 log_end_msg 1
  173.                 ;;
  174.         esac
  175.         ;;
  176. *)
  177.     N=/etc/init.d/$NAME
  178.     echo "Usage: $N {start|stop|dump|status|restart|force-reload}" >&2
  179.     exit 3
  180.     ;;
  181.  
  182.  
  183. esac
  184.